package m1;


import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;

import java.io.IOException;
import java.util.concurrent.TimeoutException;

public class Producer {

    public static void main(String[] args) throws Exception {
        // 1.建立连接
        ConnectionFactory f = new ConnectionFactory();
        f.setHost("192.168.64.140");
        f.setPort(5672);
        f.setUsername("admin");
        f.setPassword("admin");
        Connection conn = f.newConnection();
        Channel channel = conn.createChannel();// 使用这个通信通道进行通信

        // 2.在服务器上创建队列
        // 告诉服务器，需要一个"helloworld"队列
        // 如果服务器不存在这个队列,则服务器会新建队列
        channel.queueDeclare(
                "helloworld",  // 队列名
                false,         // 是否是持久队列
                false,        // 是否是排他队列、独占队列
                false,        // 是否自动删除
                null);      // 其他属性

        // 3.向指定队列发送消息
        // 发送的消息数据,必须是byte[]数组
        // 不管是什么类型的数据必须转换为byte[]再发送

        /*
        参数:
           1.默认的交换机
           2.队列
           3.其他的消息属性
           4.消息数据
        */
        channel.basicPublish("", "helloworld", null, "helloworld".getBytes());

        // 断开连接(可有可无) 和开启顺序相反
        channel.close();
        conn.close();
    }
}
